package br.lsi.supercurriculum.entidades;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * @author Dannylo Johnathan
 * @since 21/08/2012
 */

/**
 * Classe que representa a entidade Pessoa, com sua chave primária sendo o cpf. 
 */

@Entity
@Table(name="pessoa")
public class Pessoa implements Serializable {
	
	private static final long serialVersionUID = 1L;
	
	@Column(name="nome_pessoa")
	private String nome;
	
	@Column(name="sexo_pessoa")
	private char sexo;
	
	@Column(name="data_de_nascimento_pessoa")
	@Temporal(TemporalType.DATE)
	private Date dataDeNascimento;
	
	@Column(name="cpf_pessoa")
	@Id
	private String cpf;
	
	@Column(name="nacionalidade_pessoa")
	private String nacionalidade;
	
	@Column(name="estado_civil_pessoa")
	private String estadoCivil;
	
	@Column(name="numero_de_dependentes_pessoa")
	private int numeroDependentes;
	
	@Column(name="identidade_pessoa")
	private String identidade;
	
//	@JoinColumn(name="profissional_id")
//	@OneToOne(cascade=CascadeType.ALL)
//	private Profissional profissional;
//	
	@JoinColumn(name="contato_id")
	@OneToOne(cascade=CascadeType.ALL)
	private Contato contato;
	
	@JoinColumn(name="endereco_id")
	@OneToOne(cascade=CascadeType.ALL)
	private Endereco endereco;

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public char getSexo() {
		return sexo;
	}

	public void setSexo(char sexo) {
		this.sexo = sexo;
	}

	public Date getDataDeNascimento() {
		return dataDeNascimento;
	}

	public void setDataDeNascimento(Date dataDeNascimento) {
		this.dataDeNascimento = dataDeNascimento;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public String getNacionalidade() {
		return nacionalidade;
	}

	public void setNacionalidade(String nacionalidade) {
		this.nacionalidade = nacionalidade;
	}

	public String getEstadoCivil() {
		return estadoCivil;
	}

	public void setEstadoCivil(String estadoCivil) {
		this.estadoCivil = estadoCivil;
	}

	public int getNumeroDependentes() {
		return numeroDependentes;
	}

	public void setNumeroDependentes(int numeroDependentes) {
		this.numeroDependentes = numeroDependentes;
	}

	public String getIdentidade() {
		return identidade;
	}

	public void setIdentidade(String identidade) {
		this.identidade = identidade;
	}

//	public Profissional getProfissional() {
//		return profissional;
//	}
//
//	public void setProfissional(Profissional profissional) {
//		this.profissional = profissional;
//	}

	public Contato getContato() {
		return contato;
	}

	public void setContato(Contato contato) {
		this.contato = contato;
	}

	public Endereco getEndereco() {
		return endereco;
	}

	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}
	
}
